package com.dhf.framework.system.service;


import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.dhf.framework.base.mybatis.core.dao.GenericDao;
import com.dhf.framework.base.mybatis.core.service.GenericService;
import com.dhf.framework.system.dao.SysMenuDao;
import com.dhf.framework.system.entity.SysMenu;

/**
 * 描述：</b>SysMenuService<br>
 * @author：minstar
 * @since：2016年06月14日 15时32分47秒 星期二 
 * @version:1.0
 */
@Service
public class SysMenuService extends GenericService<SysMenu,Long>{
	
	public final Logger    logger  = LoggerFactory.getLogger( this.getClass() );

	@Autowired
	private SysMenuDao sysMenuDao;

    
    @Override
    public GenericDao<SysMenu, Long> getMyBatisGenericDao() {
        return sysMenuDao;
    }
    
    public List<SysMenu> listAllByUserId(Long userId){
        return sysMenuDao.listAllByUserId(userId);
    }
    
    /**
     * 
    * @Title: listSubMenuByParentId
    * @Description: 根据父菜单查询所有子菜单
    * @param @param parentId
    * @param @return    设定文件
    * @return List<SysMenu>    返回类型
    * @throws
     */
    public List<SysMenu> listSubMenuByParentId(String parentId){
        return sysMenuDao.listSubMenuByParentId(parentId);
    }
    
    /**
     * 
    * @Title: deleteByParentId
    * @Description: 根据父id删除子菜单
    * @param @param parentId    设定文件
    * @return void    返回类型
    * @throws
     */
    public void deleteByParentId(Long parentId){
        sysMenuDao.deleteByParentId(parentId);
    }
    
    /**
     * 
    * @Title: queryMenuNameByMenuUrl
    * @Description:根据菜单路径查询菜单名称
    * @param @param menuUrl
    * @param @return    设定文件
    * @return String    返回类型
    * @throws
     */
    public String queryMenuNameByMenuUrl(String menuUrl){
        SysMenu sysMenu= sysMenuDao.queryByMenuUrl(menuUrl.substring(1));
        return sysMenu==null?"":sysMenu.getMenuName();
    }
}

